// 1、提取微信返回的url的code   // ③
var getQueryString = function (name) {
    let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
    let r = window.location.search.substr(1).match(reg);
    if (r != null) return unescape(r[2]);
    return null;
  }
  // 判断是否存在code 或是 state
  var hasQueryString = function (name) {
    return window.location.search.indexOf(name) === 1 ? true : false;
  }
  /**
  * 初始化分享
  * @param share 
  */
  var initShare = function (share) {
    initJssdk(share);
  }
  // 微信授权
  var wxAuthorize = function () {
    let uri = getUri();
    let appid = "xxxxxx";
    const url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=${uri}&response_type=code&scope=snsapi_userinfo&state=#wechat_redirect`
    window.location.href = url
  }
  // 微信登录
  var wxLogin = function () {
    let uri = getUri();
    let code = localStorage.getItem('code')
    return fly.get(`http://192.168.1.200:8080/wx/wxUser/login?code=${code}&url=${uri}`)
  }
  // 获取当前网页的地址并进行编码
  var getUri = function () {
    return encodeURIComponent(window.location.href.split('#')[0]);
  }
  
  //判断是否在微信中    
  var isWechat = function () {
    var ua = window.navigator.userAgent.toLowerCase();
    if (ua.match(/micromessenger/i) == 'micromessenger') {
      return true;
    } else {
      return false;
    }
  };
  var initJssdk = function (share) {
    var uri = window.location.href.split('#')[0];
    fly.get(`http://192.168.1.200:8080//wx/share/getWxInfo?url=${uri}`).then(res => {
      let result = res.data.data
      wx.config({
        debug: false,
        appId: "xxxxxx",
        timestamp: result.timestamp,
        nonceStr: result.noncestr,
        signature: result.signature,
        jsApiList: [ //这里是需要用到的接口名称  
          'checkJsApi', //判断当前客户端版本是否支持指定JS接口  
          'updateTimelineShareData', //分享接口  
          'getLocation', //获取位置  
          'openLocation', //打开位置  
          'scanQRCode', //扫一扫接口  
          'chooseWXPay', //微信支付  
          'chooseImage', //拍照或从手机相册中选图接口  
          'previewImage', //预览图片接口  
          'uploadImage', //上传图片 
          'updateAppMessageShareData',
          'onMenuShareQQ'
        ]
      });
      wx.ready(() => {
        wx.updateTimelineShareData({
          title: share.title, // 分享标题
          link: window.location.href, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
          imgUrl: share.imgUrl, // 分享图标
          success: function () {
            // 用户点击了分享后执行的回调函数
            console.log('分享配置完成');
          }
        });
        wx.updateAppMessageShareData({
          title: share.title, // 分享标题
          desc: share.desc, // 分享描述
          link: window.location.href, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
          imgUrl: share.imgUrl, // 分享图标
          type: share.type, // 分享类型,music、video或link，不填默认为link
          dataUrl: share.dataUrl, // 如果type是music或video，则要提供数据链接，默认为空
          success: function () {
            // 用户点击了分享后执行的回调函数
            if (callback) {
              // callback(res.data);
            }
          }
        });
        wx.onMenuShareQQ({
          title: share.title, // 分享标题
          desc: share.desc, // 分享描述
          link: window.location.href, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
          imgUrl: share.imgUrl, // 分享图标
          success: function () {
            // 用户点击了分享后执行的回调函数
            if (callback) {
  
            }
          }
        });
        wx.onMenuShareQZone({
          title: share.title, // 分享标题
          desc: share.desc, // 分享描述
          link: window.location.href, // 分享链接，该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
          imgUrl: share.imgUrl, // 分享图标
          success: function () {
            // 用户点击了分享后执行的回调函数
            if (callback) {
  
            }
          }
        });
      })
    })
  }
  //在需要定位页面调用  
  var getlocation = function (callback) {
    if (!this.isWechat()) {
      //console.log('不是微信客户端')  
      return;
    }
    this.initJssdk(function (res) {
      wx.ready(function () {
        wx.getLocation({
          type: 'gcj02', // 默认为wgs84的gps坐标，如果要返回直接给openLocation用的火星坐标，可传入'gcj02'  
          success: function (res) {
            // console.log(res);  
            callback(res)
          },
          fail: function (res) {
            console.log(res)
          },
          // complete:function(res){  
          //     console.log(res)  
          // }  
        });
      });
    });
  }
  var openlocation = function (data, callback) { //打开位置  
    if (!this.isWechat()) {
      //console.log('不是微信客户端')  
      return;
    }
    this.initJssdk(function (res) {
      wx.ready(function () {
        wx.openLocation({ //根据传入的坐标打开地图  
          latitude: data.latitude,
          longitude: data.longitude
        });
      });
    });
  }
  var chooseImage = function (callback) { //选择图片  
    if (!this.isWechat()) {
      //console.log('不是微信客户端')  
      return;
    }
    //console.log(data);  
    this.initJssdk(function (res) {
      wx.ready(function () {
        wx.chooseImage({
          count: 1,
          sizeType: ['compressed'],
          sourceType: ['album'],
          success: function (rs) {
            callback(rs)
          }
        })
      });
    });
  }
  //微信支付  
  var wxpay = function (data, callback) {
    if (!this.isWechat()) {
      //console.log('不是微信客户端')  
      return;
    }
    this.initJssdk(function (res) {
      wx.ready(function () {
        wx.chooseWXPay({
          timestamp: data.timestamp, // 支付签名时间戳，注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符  
          nonceStr: data.nonceStr, // 支付签名随机串，不长于 32 位  
          package: data.package, // 统一支付接口返回的prepay_id参数值，提交格式如：prepay_id=\*\*\*）  
          signType: data.signType, // 签名方式，默认为'SHA1'，使用新版支付需传入'MD5'  
          paySign: data.paysign, // 支付签名  
          success: function (res) {
            // console.log(res);  
            callback(res)
          },
          fail: function (res) {
            callback(res)
          },
          // complete:function(res){  
          //     console.log(res)  
          // }  
        });
      });
    });
  }